package capaPresentacion.client;

import java.util.Date;
import java.util.List;

import capaPresentacion.shared.ComentarioDTO;
import capaPresentacion.shared.InfoRutaDTO;
import capaPresentacion.shared.RutaDTO;
import capaPresentacion.shared.RutaFicheroDTO;
import capaPresentacion.shared.UsuarioDTO;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("greet")
public interface WorldsTrainerWebService extends RemoteService {

	String loguearse(String usuario, String contrasenya)
			throws IllegalArgumentException;

	void registrarse(UsuarioDTO usuarioDTO) throws IllegalArgumentException;

	List<InfoRutaDTO> obtenerInfoRutasDTO() throws IllegalArgumentException;

	List<UsuarioDTO> obtenerAmigosDTO() throws IllegalArgumentException;

	void logout() throws IllegalArgumentException;

	void borrarComentarioDTO(long idComentario) throws IllegalArgumentException;

	List<UsuarioDTO> buscarUsuariosDTO(String cadena)
			throws IllegalArgumentException;

	void darseBaja() throws IllegalArgumentException;

	void hacerAmigo(String emailAmigo) throws IllegalArgumentException;

	void hacerComentarioDTO(String texto, Date fecha, long idRuta)
			throws IllegalArgumentException;

	void quitarAmigo(String emailAmigo) throws IllegalArgumentException;

	void anyadirRuta(RutaDTO rutaDTO, InfoRutaDTO infoRutaDTO)
			throws IllegalArgumentException;

	void borrarRuta(Long idRuta) throws IllegalArgumentException;

	List<RutaDTO> buscarRuta(String cadena) throws IllegalArgumentException;

	void eliminarInfo(long idInfoRuta) throws IllegalArgumentException;

	List<ComentarioDTO> obtenerComentariosRuta(long idRuta)
			throws IllegalArgumentException;

	RutaFicheroDTO obtenerInfoRuta(long idInfo) throws IllegalArgumentException;

	void logoutAdministrador() throws IllegalArgumentException;

	void borrarUsuario(String email) throws IllegalArgumentException;

	List<InfoRutaDTO> obtenerInfoRutasUsuarioAmigo(String email)
			throws IllegalArgumentException;

	RutaFicheroDTO obtenerDatosRuta(long idRuta)
			throws IllegalArgumentException;

	void modificarUsuario(UsuarioDTO usuarioDTO)
			throws IllegalArgumentException;

	UsuarioDTO obtenerUsuario() throws IllegalArgumentException;

	String obtenerEmailUsuario() throws IllegalArgumentException;
}
